const { src, dest, series, watch } = require('gulp');
const browser_sync = require('browser-sync').create();//浏览器自动访问实时刷新
const sass = require('gulp-sass')(require('sass'));  //scss转css
const rename = require('gulp-rename'); //起名字，解决合作开发导致重名问题
const autoprefixer = require('gulp-autoprefixer');//css实现各个浏览器的兼容
const fileInclude = require('gulp-file-include'); //公共文件进行合并
const babelz = require('gulp-babel'); //es2016转es2015



/**
 * es2016转es2015
 * */
function babel(cb){
    src('./src/js/*.js')
        // .pipe(babelz({
        //     presets: ['es2015']
        // }))
        .pipe(rename({suffix:'.zjh'}))
        // .pipe(minify())
        .pipe(dest('./www/js/'));
    cb()
}
/**
 *   图片转移
 * */
function images(cb){
    return src('./src/images/*')
        .pipe(dest('./www/images/'));
}

/**
*   scss文件转为css并迁移到www文件中
* */
function scss(cb){
    return src('./src/scss/*.scss')
        .pipe(sass())
        .pipe(autoprefixer())
        .pipe(rename({suffix:'.zjh'}))
        .pipe(dest('./www/css/'));
}

/**
* html公共模板合并并转移
* */
function htmlinclude(cb){
    src('./src/*.html')
        .pipe(fileInclude({
            prefix:'@@'
        }))
        .pipe(dest('./www/'));
    cb();
}

/**
* 浏览器实时刷新
* */
function browserSync(cb){
    browser_sync.init({
        files:['./src/'],
        port: 5656,//使用（而不是一个自动检测到Browsersync）特定端口
        server: {
            baseDir: ['./www/'],//服务器的根目录，可以一个或多个
            index:'./news.html' // 指定默认打开的文件
        }
    });
}

const PublicRun=series(babel,scss,images,htmlinclude,browserSync);
watch('./src/',PublicRun);
exports.default = PublicRun;